package cn.kgc.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.io.Serializable;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "data_dictionary")
@JsonInclude(value = JsonInclude.Include.ALWAYS)
@SuppressWarnings("all")
public class DataDictionary extends Model<DataDictionary> implements Serializable {

    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 数据字典的类别代码code，根据本code可以找到对应的所有下属的value列表，例如：benefits（同一类型item所对应的code都是一致的）
     */
    @TableField(value = "type_code")
    private String typeCode;

    /**
     * 数据字典的类别名称，例如：福利待遇（同一类型item所对应的name都是一致的）
     */
    @TableField(value = "type_name")
    private String typeName;

    /**
     * 字典项，数据字典类别下的所有key，每个key对应一个value，可以根据类型key和字典key同时找到具体某一项字典value，例如：travel-旅游
     */
    @TableField(value = "item_key")
    private String itemKey;

    /**
     * 每个单个的数据字典的值，唯一key所对应的值value，例如：旅游
     */
    @TableField(value = "item_value")
    private String itemValue;

    /**
     * 排序
     */
    @TableField(value = "sort")
    private Integer sort;

    /**
     * 对应的字体图标，可以为空
     */
    @TableField(value = "icon")
    private String icon;

    /**
     * 是否开启，1：启用，0：停用
     */
    @TableField(value = "enable")
    private Short enable;
}